package com.catmiao.spark.rdd.builder

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @title: RDD_Create_01_Memory
 * @projectName spark_study
 * @description: TODO
 * @author ChengMiao
 * @date 2024/2/1 11:33
 */
object RDD_Create_02_File_Par {

  def main(args: Array[String]): Unit = {

    val sparkCon = new SparkConf().setMaster("local[*]").setAppName("rdd")

    val sparkContext = new SparkContext(sparkCon)


    // textFile 默认最小分区数: minPartitions math.min(defaultParallelism, 2) 取当前环境默认分区数和2的最小值 2

    // file 内容 1122334 7字节
    // 不指定分区数  part1: [1,2] part2: [3]
//    val rdd: RDD[String] = sparkContext.textFile("datas/1.txt")
    // Spark读取文件的的底层使用的是hadoop的算法
    // 分区数量的计算方式
    // 文件的字节数 7  配置的最小分区数 2
    // 7/2 = 3 【每个分区应该存放的字节数 3】
    // 7/3 = 2..1 [1.1倍，大于产生新的分区] 3个分区
    val rdd: RDD[String] = sparkContext.textFile("datas/1.txt",2)


    rdd.saveAsTextFile("output")


    sparkContext.stop()

  }

}
